﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <iostream>
#include <time.h>
#include <stdlib.h>

using std::cout;
using std::endl;

#define Add(a,b) ((a)+(b))
//int main()
//{
//	int a = 10;
//	int b = 20;
//	int c=Add(a, b);
//	cout << c << endl;
//
//}
namespace bit
{
	namespace xs
	{
		int rand = 100;
	}
	namespace ls
	{
		int rand = 10;
	}
}

//int main()
//{
//	//printf("%d", bit::xs::rand);
//	std::cout << "hello bit"<<"\n";
//	int a = 10;
//	double b = 11.11;
//	std::cout << a<< "\n";
//	std::cout << a <<std::endl;
//
//	std::cout << b<< "\n";
//	std::cout << b << std::endl;
//
//
//}


//int main()
//{
//	int a = 20;
//	double b = 12.12;
//	cout << a << endl << b << endl;
//
//	int c = 0;
//	std::cin >> c;
//	cout << c;
//}

//int main()
//{
//	int a = 10;
//	int b = a;
//	int& c = a;
//}

//int main()
//{
//	int a = 10,b = 20;
//	//Swap��������
//	Swap(&a, &b);
//	Swap(a, b);
//}

//void func1(int x)
//{
//	cout << &x <<endl;
//}
//void func2(int y)
//{
//	cout << &y << endl;
//}
//
//int main()
//{
//	func1(1);
//	func2(2);
//}
//
//


//void testfor(int arr[])
//{
//	for (auto & e : arr)
//	{
//		e++;
//		cout << e << endl;
//	}
//}








//int main()
//{
//	int a = 10;
//	int& b = a;
//	
//	int c = 20;
//	//���渳ֵ���������õ�ָ�򲻻�ı�
//	b = c;
//	cout << "b=" << b << endl;
//}



//c++����struct������
//�����������ͣ�Slist�������ͣ����綨������next����ʱ
//���ﶨ�庯��
struct Slist
{
private:
	Slist* next;
	int val;

public:
	void Init()
	{
		next = nullptr;
		val = 0;
	}

};

//int main()
//{
//	Slist s1;
//	//��һ��Slist����ĺ���
//	s1.Init();
//	if (s1.val == 0)
//	{
//
//	}
//}

//void Slist::Init()
//{
//	next = nullptr;
//	val = 0;
//}


//class Date
//{
//private:
//	//����
//	int _year;
//	int _month;
//	int _day;
//
//public:
//	void Init(int year, int month, int day)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//};

//int main()
//{
//	Date d;
//	d.Init(2023,10,18);
//	d.Init(2022, 10, 18);
//}


//class Age
//{
//public:
//	//����
//	int _age;
//};
//
//
//
//int main()
//{
//	Age a;
//	a._age = 19;
//}



//class A
//{
//public:
//	void Print()
//	{
//		cout << "Print()" << endl;
//	}
//private:
//	int _a;
//};
//
//int main()
//{
//	A* p = nullptr;
//	p->Print();
//}


//class A
//{
//public:
//	void PrintA()
//	{
//		cout << _a << endl;
//	}
//private:
//	int _a;
//};
//int main()
//{
//	A* p = nullptr;
//	p->PrintA();
//	return 0;
//}


//class Date
//{
//public:
//	// 1.�޲ι��캯��
//	Date()
//	{
//		_year = 1;
//		_month = 1;
//		_day = 1;
//	}
//	// 2.���ι��캯��
//	Date(int year, int month, int day)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//	void Print()
//	{
//		cout << _year <<" " << _month <<" " << _day << endl;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//int main()
//{
//	//���캯��֧������
//
//	Date d1; // �����޲ι��캯��(����)
//	d1.Print();
//	Date d2(2015, 1, 1); // ���ô��εĹ��캯��
//	d2.Print();
//}
	



//class Date
//{
//public:
//	void Print()
//	{
//		cout << _year << " " << _month << " " << _day << endl;
//	}
//private:
//	//����
//	int _year = 1;
//	int _month = 1;
//	int _day = 1;
//};
//int main()
//{
//	Date d1; 
//	d1.Print();
//}

//class Time
//{
//public:
//	~Time()
//	{
//		cout << "~Time()" << endl;
//	}
//private:
//	int _hour;
//	int _minute;
//	int _second;
//};
//class Date
//{
//private:
//	// ��������(��������)
//	int _year = 1970;
//	int _month = 1;
//	int _day = 1;
//	// �Զ�������
//	Time _t;
//};
//int main()
//{
//	Date d;
//	return 0;
//}

class Stack
{
private:
	int* _a;
	int _top;
	int _capacity;
public:

	//构造
	Stack()
	{
		_a = (int*)malloc(sizeof(int) * 4);
		if (_a == nullptr)
		{
			perror("_a");
			exit(-1);
		}
		_top = 0;
		_capacity = 4;
	}
	//深拷贝构造
	Stack(const Stack& st)
	{
		_a = (int *)malloc(sizeof(int) * st._capacity);
		if (_a == nullptr)
		{
			perror("_a");
			exit(-1);
		}
		memcpy(_a, st._a, st._top);
		_top = st._top;
		_capacity = st._capacity;
	}
	//析构
	~Stack()
	{
		free(_a);
		_a = nullptr;
		_top = 0;
		_capacity = 0;
		
	}
};




//Stack func()
//{
//	Stack stt;
//	return stt;
//}
//
//int main()
//{
//	Stack st = func();
//	
//
//}
//
Stack& func1()
{
	static Stack stt;
	return stt;
}

int main()
{
	Stack st = func1();

}



